home *** CD-ROM | disk | FTP | other *** search
- (*------------------------------------------
-
- :Module. RBMainWindowClass.mod
- :Author. Albert Weinert [awn]
- :Address. Moltkestr. 83 , 50859 Köln, Germany
- :EMail. a.weinert@darkness.gun.de
- :Phone. +49-221-480800
- :Revision. R.0
- :Date. 10-Apr-1995
- :Copyright. Albert Weinert
- :Language. Oberon-2
- :Translator. AmigaOberon V3.20
- :Contents. <Kurzbeschreibung>
- :Imports. <Importiertes, Name/ShortCut des Autors>
- :Remarks. <Was Du willst, evtl. Usage>
- :Bugs. <Bekannte Fehler>
- :Usage. <Angaben zur Anwendung>
- :RCSId. $Id$
- :History. .0 [awn] 10-Apr-1995 : Erstellt
-
- --------------------------------------------*)
- MODULE RBMainWindowClass;
-
- IMPORT
- e := Exec,
- I := Intuition,
- rc := RootClass,
- m := Mui,
- ms := MuiSimple,
- mw := MUIWindow,
- el := EditListClass,
- u := Utility,
- y := SYSTEM;
-
- TYPE
- Class = UNTRACED POINTER TO ClassDesc;
- ClassDesc = RECORD( mw.ClassDesc );
- END;
-
- pClose = STRUCT( msg : I.Msg );
- level : LONGINT;
- END;
-
- CONST
- tagBase = u.user + (64*65536);
-
- mClose = tagBase +1 ;
-
- VAR
- class -: I.IClassPtr;
-
- PROCEDURE ( VAR c: ClassDesc ) New*( VAR msg : I.OpSet ):e.APTR;
- VAR win : e.APTR;
- group, commandGroup, parameterGroup, resultGroup : m.Object;
- tags : u.Tags2;
- BEGIN
- commandGroup := I.NewObject( el.class, NIL,
- m.aFrame, m.vFrameGroup,
- m.aFrameTitle, y.ADR( "Befehle" ),
- el.aNewText, y.ADR("_Neu"),
- el.aRemoveText, y.ADR("_Entfernen"),
- el.aNewMenuText, y.ADR("Neu"),
- el.aRemoveMenuText, y.ADR("Entfernen"),
- el.aHelpMenuText, y.ADR("Hilfe"),
- m.aShortHelp, y.ADR( "List der Befehle die der ARexx-Port versteht" ),
- u.end );
- parameterGroup := I.NewObject( el.class, NIL,
- m.aFrame, m.vFrameGroup,
- m.aFrameTitle, y.ADR( "Parameter" ),
- el.aNewText, y.ADR("Ne_u"),
- el.aRemoveText, y.ADR("Ent_fernen"),
- el.aUpText, y.ADR("_Hoch"),
- el.aDownText, y.ADR("_Runter"),
- el.aNewMenuText, y.ADR("Neu"),
- el.aRemoveMenuText, y.ADR("Entfernen"),
- el.aUpMenuText, y.ADR("Hoch"),
- el.aDownMenuText, y.ADR("Runter"),
- el.aHelpMenuText, y.ADR("Hilfe"),
- m.aShortHelp, y.ADR( "Parameter des ausgewählten ARexx-Befehls" ),
- u.end );
- resultGroup := I.NewObject( el.class, NIL,
- m.aFrame, m.vFrameGroup,
- m.aFrameTitle, y.ADR( "Resultate" ),
- el.aNewText, y.ADR("Neu"),
- el.aRemoveText, y.ADR("Entfernen"),
- el.aUpText, y.ADR("H_och"),
- el.aDownText, y.ADR("Run_ter"),
- el.aNewMenuText, y.ADR("Neu"),
- el.aRemoveMenuText, y.ADR("Entfernen"),
- el.aUpMenuText, y.ADR("Hoch"),
- el.aDownMenuText, y.ADR("Runter"),
- el.aHelpMenuText, y.ADR("Hilfe"),
- m.aShortHelp, y.ADR( "Rückgabewerte des ausgewählten ARexx-Befehls" ),
- u.end );
- group := ms.HGroup( m.aGroupChild, commandGroup,
- m.aGroupChild, parameterGroup,
- m.aGroupChild, resultGroup,
- u.end );
- tags[1].tag := u.more;
- tags[1].data := msg.attrList;
- tags[0].tag := m.aWindowRootObject;
- tags[0].data := group;
- msg.attrList := y.ADR(tags);
-
- win := c.New^( msg );
- IF win # NIL THEN
- c.CopyClass( win );
- m.DoMethod( win, m.mNotify, m.aWindowCloseRequest, e.true, win, 2, mClose, 0 );
- END;
- RETURN win;
- END New;
-
- PROCEDURE ( VAR c : ClassDesc ) Close*( VAR msg : pClose ): e.APTR;
- VAR app : m.Object;
- BEGIN
- ms.Get( c.object, m.aWindowApplication, app );
- m.DoMethod( app, m.mApplicationReturnID, m.vApplicationReturnIDQuit );
- RETURN NIL;
- END Close;
-
- PROCEDURE Dispatch * ( cl : I.IClassPtr; obj : I.ObjectPtr; msg : I.MsgPtr ):e.APTR;
- VAR c : Class;
- BEGIN
- IF msg.methodID # I.new THEN
- c := rc.BoopsiToObj( cl, obj )(Class);
- END;
- CASE msg.methodID OF
- | mClose : RETURN c.Close( msg^(pClose ) );
- ELSE
- RETURN mw.Dispatch( cl, obj, msg );
- END;
- END Dispatch;
-
- BEGIN
- class := rc.InitPrivFromClass( mw.class, Dispatch, SIZE( ClassDesc ), y.TYPEDESC( ClassDesc ) );
- IF class = NIL THEN HALT(205) END;
- CLOSE
- IF class # NIL THEN IF I.FreeClass( class ) THEN END END;
- END RBMainWindowClass.
-